package p.ithorns.integration.aop.hotswap;

import org.springframework.context.ApplicationEvent;
import org.springframework.util.ObjectUtils;

/**
 * ProxyMetaDefinitionChangeEvent
 * TODO
 *
 * @author HtL
 * @date 2024/11/27 9:19
 * @since 1.0.0
 */
public class ProxyMetaDefinitionChangeEvent extends ApplicationEvent {

    private final ProxyMetaDefinitionChangeEntity proxyMetaDefinitionChangeEntity;

    public ProxyMetaDefinitionChangeEvent(Object source,ProxyMetaDefinitionChangeEntity proxyMetaDefinitionChangeEntity) {
        super(source);
        this.proxyMetaDefinitionChangeEntity = proxyMetaDefinitionChangeEntity;
    }

    public OperateEventEnum getOperateEventEnum() {
        if(ObjectUtils.isEmpty(proxyMetaDefinitionChangeEntity)){
            return OperateEventEnum.UNKOWN;
        }
        return proxyMetaDefinitionChangeEntity.getOperateEventEnum();
    }

    public ProxyMetaDefinition getProxyMetaDefinition() {
        if(ObjectUtils.isEmpty(proxyMetaDefinitionChangeEntity)){
            return null;
        }
        return proxyMetaDefinitionChangeEntity.getDefinition();
    }
}